#ifndef SEARCHRESULT_H
#define SEARCHRESULT_H

#include <QObject>
#include "onesearchresult.h"

/** Результат поиска.*/
class VMSearchResult : QObject{
    Q_OBJECT

    /** Результаты поиска.*/
    Q_PROPERTY(QList<OneSearchResult *> searchResult READ searchResult NOTIFY searchResultChange)
    /** Строка поискового запроса.*/
    Q_PROPERTY(QString searchStr READ searchStr NOTIFY searchStrChange)
    /** Размер искомого файла.*/
    Q_PROPERTY(int searchFileSize READ searchFileSize NOTIFY searchFileSizeChange)
    /** Тип искомого файла.*/
    Q_PROPERTY(QString searchFileType READ searchFileType NOTIFY searchFileTypeChange)

private:
    /** Результаты поиска.*/
    QList<OneSearchResult *> m_searchResult;
    /** Строка поискового запроса.*/
    QString m_searchStr;
    /** Размер искомого файла.*/
    int m_searchFileSize;
    /** Тип искомого файла.*/
    QString m_searchFileType;

public:
    explicit VMSearchResult(/*QList<QObject> searchResult, //-> Результаты поиска.*/
                          QString searchStr, //-> Строка поискового запроса.
                          QString searchFileType, //-> Тип искомого файла.
                          QObject *parent = 0);
    /** Результаты поиска.*/
    QList<OneSearchResult *> searchResult() const noexcept;
    /** Строка поискового запроса.*/
    QString searchStr() const noexcept;
    /** Размер искомого файла.*/
    int searchFileSize() const noexcept;
    /** Тип искомого файла.*/
    QString searchFileType() const noexcept;
    
signals:
    /** Изменились результаты поиска.*/
    void searchResultChange();
    /** Изменилась строка поискового запроса.*/
    void searchStrChange();
    /** Изменился размер искомого файла.*/
    void searchFileSizeChange();
    /** Изменился тип искомого файла.*/
    void searchFileTypeChange();
};

#endif // SEARCHRESULT_H
